class TrabajogradosController < ApplicationController
  layout "menuprincipal"
  before_filter :login_required

  # GET /trabajogrados
  # GET /trabajogrados.xml
  def index
    if cookies[:tipo]=='P'
      @participante=Participante.find(:first, :conditions => ["persona_id = ?", cookies[:persona_id]])
      @trabajogrados = Trabajogrado.find(:all, :conditions => ["participante_id = ?", @participante.id])
    else 
      @tutor=Profesor.find(:first, :conditions => ["persona_id = ?", cookies[:persona_id]])
      @trabajogrados = Trabajogrado.find(:all, :conditions => ["profesor_id = ?", @tutor.id])
     end
     if (@trabajogrados)
     @contador=@trabajogrados.size
     else
     @contador=0
     end
     
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @trabajogrados }
    end
  end

  # GET /trabajogrados/1
  # GET /trabajogrados/1.xml
  def show
    @trabajogrado = Trabajogrado.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @trabajogrado }
    end
  end

  # GET /trabajogrados/new
  # GET /trabajogrados/new.xml
  def new
    @trabajogrado = Trabajogrado.new
    @participante=Participante.find(:first, :conditions => ["persona_id = ?", cookies[:persona_id]])
    @lineas=Linea.find_by_sql("select lineas.id, lineas.nombre from lineas, participante_profesors" +
     " where lineas.id = participante_profesors.linea_id " +
      " and participante_profesors.participante_id = #{@participante.id} ")    
    @tutores=Profesor.find_by_sql("select profesors.id, personas.nombre from profesors, participante_profesors, personas " +
     " where personas.id = profesors.persona_id and profesors.id = participante_profesors.profesor_id " +
      " and participante_profesors.participante_id = #{@participante.id} ")    
    
    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @trabajogrado }
    end
  end

  # GET /trabajogrados/1/edit
  def edit
    @trabajogrado = Trabajogrado.find(params[:id])
    @participante=Participante.find(:first, :conditions => ["persona_id = ?", cookies[:persona_id]])
    @lineas=Linea.find_by_sql("select lineas.id, lineas.nombre from lineas, participante_profesors" +
     " where lineas.id = participante_profesors.linea_id " +
      " and participante_profesors.participante_id = #{@participante.id} ")    
    @tutores=Profesor.find_by_sql("select profesors.id, personas.nombre from profesors, participante_profesors, personas " +
     " where personas.id = profesors.persona_id and profesors.id = participante_profesors.profesor_id " +
      " and participante_profesors.participante_id = #{@participante.id} ") 
  end

  # POST /trabajogrados
  # POST /trabajogrados.xml
  def create
    @trabajogrado = Trabajogrado.new(params[:trabajogrado])    
    @participante=Participante.find(:first, :conditions => ["persona_id = ?", cookies[:persona_id]])
    if (@participante) 
     @trabajogrado.participante_id=@participante.id
    end
    
    respond_to do |format|
      if @trabajogrado.save
        flash[:notice] = 'El Trabajo de Grado fue guardado satisfactoriamente.'
        format.html { redirect_to(@trabajogrado) }
        format.xml  { render :xml => @trabajogrado, :status => :created, :location => @trabajogrado }
      else
        @participante=Participante.find(:first, :conditions => ["persona_id = ?", cookies[:persona_id]])
        @lineas=Linea.find_by_sql("select lineas.id, lineas.nombre from lineas, participante_profesors" +
         " where lineas.id = participante_profesors.linea_id " +
         " and participante_profesors.participante_id = #{@participante.id} ")    
        @tutores=Profesor.find_by_sql("select profesors.id, personas.nombre from profesors, participante_profesors, personas " +
         " where personas.id = profesors.persona_id and profesors.id = participante_profesors.profesor_id " +
         " and participante_profesors.participante_id = #{@participante.id} ")    
        format.html { render :action => "new" }
        format.xml  { render :xml => @trabajogrado.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /trabajogrados/1
  # PUT /trabajogrados/1.xml
  def update
    @trabajogrado = Trabajogrado.find(params[:id])    

    respond_to do |format|
      if @trabajogrado.update_attributes(params[:trabajogrado])
        flash[:notice] = 'El Trabajo de Grado fue actualizado satisfactoriamente'
        format.html { redirect_to(@trabajogrado) }
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @trabajogrado.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /trabajogrados/1
  # DELETE /trabajogrados/1.xml
  def destroy
    @trabajogrado = Trabajogrado.find(params[:id])
    @trabajogrado.destroy

    respond_to do |format|
      format.html { redirect_to(trabajogrados_url) }
      format.xml  { head :ok }
    end
  end
  
  def reporte
    if cookies[:tipo]=='P'
      @participante=Participante.find(:first, :conditions => ["persona_id = ?", cookies[:persona_id]])
      @trabajogrados = Trabajogrado.find(:all, :conditions => ["participante_id = ?", @participante.id])
    else 
      @tutor=Profesor.find(:first, :conditions => ["persona_id = ?", cookies[:persona_id]])
      @trabajogrados = Trabajogrado.find(:all, :conditions => ["profesor_id = ?", @tutor.id])
     end
     
#     @contador=@trabajogrados.count
     
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @trabajogrados }
    end
      
  end

  def imprimir
    require "pdf/writer"
    pdf = PDF::Writer.new
    pdf.select_font "Times-Roman"
#    pdf.select_font "Courier"    
    pdf.margins_pt (36,54,72,90)
    @trabajogrado =  Trabajogrado.find(params[:id])
 #   @trabajocapitulo = TrabajoCapitulo.find(:all, :conditions => ["trabajo_id = ?", @trabajogrado.id])
    @trabajocapitulo = TrabajoCapitulo.find(@trabajogrado.id)
    
    @texto = "#{@texto} "+"Informacion del Participante:"+"\n"    
    @texto = "#{@texto} "+"Cedula:     "+@trabajogrado.participante.persona.cedula.to_s+"\n"
    @texto = "#{@texto} "+"Nombre:    "+@trabajogrado.participante.persona.nombre+"\n"
    @texto = "#{@texto} "+"Maestrias: "+@trabajogrado.participante.maestria.nombre+"\n"
    @texto = "#{@texto} "+"Areas:      "+@trabajogrado.participante.maestria.area.nombre+"\n"    
    @texto = "#{@texto} "+"Lineas:    "+@trabajogrado.participante.maestria.area.linea.nombre+"\n"    
    @texto = "#{@texto} "+"\n"    
    @texto = "#{@texto} "+"Informacion del Tutor:"+"\n"    
    @texto = "#{@texto} "+"Cedula:     "+@trabajogrado.profesor.persona.cedula.to_s+"\n" 
    @texto = "#{@texto} "+"Nombre:     "+@trabajogrado.profesor.persona.nombre+"\n"           
    @texto = "#{@texto} "+"\n"    
    @texto = "#{@texto} "+"Informacion del Trabajo de Grado:"+"\n"    
#    @texto = "#{@texto} "+"Fecha  :    "+@trabajocapitulo.fecha.to_d+"\n"    
    @texto = "#{@texto} "+"Titulo :    "+@trabajogrado.nombre_trabajo+"\n"
    @texto = "#{@texto} "+"\n"    
    
#    for @trabajocapitulo in @arreglo
      @texto = "#{@texto} "+"Informacion de los Capitulos:"+"\n"    
#      @texto = "#{@texto} "+@arreglo.capitulo.nombrecapitulo+"\n"
      @texto = "#{@texto} "+@trabajocapitulo.capitulo.nombrecapitulo+"\n"
      @texto = "#{@texto} "+@trabajocapitulo.contenido+"\n"
#     end
      
    

    pdf.text @texto, :font_size => 10, :justification => :left
    #"<b>Hola esquirol!!</b>", :font_size => 18, :justification => :center
    send_data pdf.render, :filename=>"TrabajoDeGrado.pdf", :type=>"pdf"
      
  end
end
